草庐IT

Rust 结构体

全部标签

c# - 从结构的常量属性中获取值的集合

我有一个看起来像这样的结构:publicstructMyStruct{publicconststringProperty1="blahblahblah";publicconststringProperty2="foo";publicconststringProperty3="bar";}我想以编程方式检索MyStruct的常量属性值的集合。到目前为止,我已经尝试过但没有成功:varx=fromdintypeof(MyStruct).GetProperties()selectd.GetConstantValue();有人有什么想法吗?谢谢。编辑:这是最终对我有用的:fromdintype

c# - 静态结构方法和静态类方法有什么区别?

我最近发现C#中的结构可以有方法。非常意外地,我发现自己一直在我的代码中使用空结构的静态方法,而不是我认为我正在使用的静态类的静态方法!例如publicstructFoo{publicstaticvoidBar(Paramparam){...}}此时它并没有真正用作结构,因为它根本没有任何属性!这与使用类的静态方法(静态或其他)有很大不同吗?有什么理由比另一个更喜欢一个吗?(我的直觉告诉我,使用静态结构方法至少不那么直观) 最佳答案 不,静态成员属于类型,而不属于类型的实例。声明静态类成员和静态结构成员之间没有区别(无论是在性能还是

c# - 结构的快速序列化/反序列化

我有大量地理数据以仅包含结构的简单对象结构表示。我的所有字段都是值类型。publicstructChild{readonlyfloatX;readonlyfloatY;readonlyintmyField;}publicstructParent{readonlyintid;readonlyintfield1;readonlyintfield2;readonlyChild[]children;}数据被很好地分块到Parent[]-s的一小部分。每个数组包含几千个Parent实例。我有太多数据无法全部保存在内存中,因此我需要将这些block来回交换到磁盘。(一个文件将产生大约2-300KB

c# - 用什么集合来存储树结构?

我想在集合中存储组织结构图。我认为树数据结构最适合我的需要,因为我需要将多个节点添加到一个节点。LinkedList仅提供将一个节点添加到另一个节点,如果我理解正确的话。我查看了C5treeset集合,但它似乎没有Add()方法可以将超过2个节点添加到一个节点。我还查看了Windows窗体库中的Treeview类,但我不想将Windows窗体dll添加到我的项目中,因为我正在构建服务层应用。(或者还好吗?)我不想编写自己的树集合类,如果第3方已经提供了一个?有什么建议吗?谢谢 最佳答案 像这样的事情可以作为一个起点。通过使用泛型,这

c# - 为此结构实现 GetHashCode 的正确方法

我想使用日期范围(从一个日期到另一个日期)作为字典的键,所以我编写了自己的结构:structDateRange{publicDateTimeStart;publicDateTimeEnd;publicDateRange(DateTimestart,DateTimeend){Start=start.Date;End=end.Date;}publicoverrideintGetHashCode(){//???}}实现GetHashCode的最佳方法是什么,这样不同范围的两个对象就不会生成相同的哈希值?我希望散列冲突尽可能少,尽管我知道Dictionary仍会检查我也将实现的相等运算符,但不

c# - 在 C# 中保存数据结构

我正在通过编写家庭图书馆管理器来学习C#。我有一个BookController,它将书籍存储在数据结构中并对其执行操作。C#是否有办法将字典中的数据以XML方式保存到本地文件以便稍后加载,还是我必须自己编写?保存和加载C#可用数据的最佳方法是什么?只需要指出一个好的方向。 最佳答案 实际上,C#(语言)对序列化一无所知,但是.NET(框架)提供了很多方法...XmlSerializer,BinaryFormatter、DataContractSerializer(.NET3.0)-或者也有一些定制的序列化框架。使用哪个取决于您的要求

c# - 生成动态方法来设置结构的字段而不是使用反射

假设我有以下代码更新struct的字段使用反射。由于结构实例被复制到DynamicUpdate方法,itneedstobeboxedtoanobjectbeforebeingpassed.structPerson{publicintid;}classTest{staticvoidMain(){objectperson=RuntimeHelpers.GetObjectValue(newPerson());DynamicUpdate(person);Console.WriteLine(((Person)person).id);//print10}privatestaticvoidDynam

c# - 为什么我们需要结构? (C#)

要使用结构,我们需要实例化结构并像使用类一样使用它。那我们为什么不首先创建一个类呢? 最佳答案 结构是一种值类型,因此如果您创建一个副本,它实际上会复制数据,而对于一个类,它只会复制对数据的引用 关于c#-为什么我们需要结构?(C#),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1216993/

c# - 为什么 String 是 Value 类型,虽然它是一个类而不是一个结构?

举个例子:stringme="Ibraheem";stringcopy=me;me="Empty";Console.WriteLine(me);Console.WriteLine(copy);输出是:EmptyIbraheem因为它是类类型(即不是结构),Stringcopy也应该包含Empty因为C#中的=operator分配引用对象而不是对象本身(如在C++中)? 最佳答案 虽然已接受的答案解决了这个问题(和其他一些人一样),但我想给出一个专门针对您实际上要问的问题的答案,这是关于变量赋值的语义。C#中的变量只是为保存单个值而预

c# - 为什么 C# 结构不能返回对其成员字段的引用?

structFoo{inti;publicrefintI=>refi;}此代码引发编译错误CS8170,但如果Foo是一个类,则不会。为什么结构不能返回成员作为引用? 最佳答案 我想我找到了解决方法:classProgram{staticvoidMain(string[]args){Footemp=newFoo(99);Console.WriteLine($"{Marshal.ReadInt32(temp.I)}");Console.ReadLine();}}structFoo{inti;publicIntPtrI;publicFo